package com.macro.mall.service;

import com.macro.mall.common.api.CommonPage;
import com.macro.mall.common.api.CommonResult;
import com.macro.mall.domain.AgentSkuListResult;
import com.macro.mall.model.UmsMember;
import com.macro.mall.model.UmsMemberExample;
import com.macro.mall.model.UmsMemberLevel;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * 分销商管理
 * @author zhouboyu
 * @Date 2020年8月27日
 */
public interface UmsDistributionMemberService {
    /**
     * 查询当前门店下的所有乡村经纪人
     * @author zhouboyu
     * @Date 2020年8月27日
     * @param userId 门店用户的id
     */
    List<UmsMember> list(Long userId,Integer pageNum,Integer pageSize,String realName,String phone,Integer type);

    /**
     * 创建活绑定分销商
     * @author zhouboyu
     * @Date 2020年8月28日
     * @param userName
     *          当前门店的用户名
     * @param umsMember
     *          当前创建的分销商（乡村经纪人）
     * @return
     */
    CommonResult addOrBindUser(String userName, UmsMember umsMember);

    /**
     * 查询当前乡村经纪人名下的客户列表
     * @author zhouboyu
     * @Date 2020年8月29日
     *
     * @param distributionId
     * @param pageSize
     * @param page
     * @return
     */
    CommonPage<UmsMember> queryMembersByDistributionId(Long distributionId, Integer pageSize, Integer page);

    /**
     * 查询当前乡村经纪人名下的客户列表
     * 不进行分页处理
     * @author zhouboyu
     * @Date 2020年8月29日
     *
     * @param distributionId
     * @return
     */
    List<UmsMember> queryMembersByDistributionId(Long distributionId);

    /**
     * 查询当前乡村经纪人下客户的数量
     * @author zhouboyu
     * @Date
     * @param distributionId
     * @return
     */
    long getMemberCountByDistributionId(Long distributionId);

    /**
     * 获取某个分销商下的用户
     * @author 高强
     * @Date 2020年10月13日
     * @param agentId
     * @return
     */
    CommonResult<CommonPage<UmsMember>> getMemberByAgent(Long agentId,String phone, Integer pageNum, Integer pageSize);

    /**
     * 把某个分销商下的用户转移到另一个分销商下
     * @author 高强
     * @Date 2020年10月13日
     * @param ids
     * @param newAgentId
     * @return
     */
    CommonResult transferMember(String ids, Long newAgentId);

    /**
     * 获取经纪人库存列表
     * @author 孙晓亮
     * @date 2020年9月21日
     * @param agentId 经纪人id
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<AgentSkuListResult> getAgentSkuList(Long agentId, Integer pageNum, Integer pageSize);
}
